import VueRouter from 'vue-router';
import routes from './routes';
import Vue from 'vue';
import store from '@/store';
Vue.use(VueRouter);
const route = new VueRouter({
  routes,
  mode: 'history',
});

// 导航守卫
route.beforeEach((to, from, next) => {
  // 每当导航切换时（包含刷新页面的第一次），该函数会运行
  // from：跳转之前的路由对象（相当于 this.$route）
  // to：跳转之后的路由对象（相当于 this.$route）
  // next：确认导航的一个函数  调用该函数（无参），就会直接进入to， 调用该函数（传入参数），根据传入参数进入新的导航
  const status = store.getters['loginUser/status'];
  if (to.meta.auth) {
    if (status === 'loading') {
      // 登录中，跳转到登录加载页
      next({
        path: '/loading',
        query: {
          returnUrl: to.fullPath,
        }
      });
    } else if (status === 'login') {
      // 已经登录，正常跳转
      next();
    } else {
      // 未登录，跳转至登录页
      alert("你还没有登录，请先登录！")
      next({
        path: '/login',
        query: {
          returnUrl: to.fullPath,
        }
      });
    }
  } else {
    next();
  }
});

export default route;
